//============================================================================
// Name        : tpdatos_1C2014.cpp
// Author      : manu
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <string.h>
#include <stdio.h>

#include "consola/ProcesadorDeComandos.h"
#include "../tests/Tests.h"

using namespace std;

void comprimir(char* nombre_archivo, ProcesadorDeComandos procesador) {
	procesador.comprimir(nombre_archivo);
}

void comprimir(char* nombre_archivo, char* opt, ProcesadorDeComandos procesador) {
	procesador.comprimir(nombre_archivo, atoi(opt));
}

void descomprimir(char* nombre_archivo, ProcesadorDeComandos procesador) {
	procesador.descomprimir(nombre_archivo);
}

void correrTests(){
	Tests::correrTests();
}

int main(int argc, char** argv) {
	ProcesadorDeComandos procesador;
	if (argc < 2) {
		cout << "error en la cantidad de parametros" << endl;
		return 0;
	}

	if ( strcmp(argv[1], "-c") == 0 ){
		if( (argc > 3) && (strcmp(argv[3], "--optimizacion") == 0) )
			comprimir(argv[2], argv[4], procesador);
		else
			comprimir(argv[2], procesador);
	}
	else if ( strcmp(argv[1], "-d") == 0 ){
		descomprimir(argv[2], procesador);
	}
	else if( strcmp(argv[1], "-t") == 0){
		correrTests();
	}
	else
	{
		cout << "error en los parametros: '" << argv[1] << "' operacion desconocida\n" << endl;
	}

	return 0;
}
